問答系統是一個自動為一自然語言問題找出答案(組)的任務。
這是Google的問答系統(我也不知道為什麼Google會幫歐巴馬放上這張圖XD)。
我們能夠用資訊檢索的方式來開發問答系統,流程如下:
在問題轉換為查詢的過程中,我們會去掉停止詞以找出關鍵字(用於tf-idf),並且試著從問題中找提示。像是在Google搜尋「誰是上一任美國總統」這個問題當中,它將「上一任」轉換為他們的資料儲存型態「前任」;也可能在「誰」這個字中發現一個提示→會是一個人物(我們沒辦法確定在這個問題中有沒有幫助Google找到答案,但這個詞的確能夠幫助我們的系統更精確地找到答案);最後是「美國總統」這個詞,我們看到系統能夠索引到歐巴馬是循著「唐納·川普 / 前任」這個思路去找的,資料也極有可能是根據維基百科的「唐納·川普 → 美國總統 → 前任」這條路去尋找答案。
這樣的問答系統仍存在些小問題,例如:
正確答案應該是:
然而系統卻去找到「麥克·彭斯」在做美國印第安納州州長時的前任。
在Question Processing的步驟中,第二項為Answer Type Detection。在使用者的問題當中,我們若能夠找到問題中試圖尋找的答案類型,能夠增加我們答題的準確性。
這些是常見的答案類型。
除此之外仍有一些如SQUAD(Rajpurkar et al., 2016)、DrQA(Chen et al., 2017)、Sempre(Berant et al., 2013)、IBM Watson(Ferrucci et al., 2010)等方法可以讓大家開發問答系統。